home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - ProDOS / PRO021.dsk / FINCALC.bas < prev    next >
BASIC Source File  |  2012-02-16  |  15KB  |  269 lines

  1. 10  REM  "FINCALC-a Financial Calculator"
  2. 15  REM   "By Darrell.Smith"       
  3. 20  GOTO 200
  4. 25  ON K GOTO 30,35,40,45,50,55,60,65,70,75,80,90
  5. 30 K$ = "JAN": RETURN 
  6. 35 K$ = "FEB": RETURN 
  7. 40 K$ = "MAR": RETURN 
  8. 45 K$ = "APR": RETURN 
  9. 50 K$ = "MAY": RETURN 
  10. 55 K$ = "JUN": RETURN 
  11. 60 K$ = "JUL": RETURN 
  12. 65 K$ = "AUG": RETURN 
  13. 70 K$ = "SEP": RETURN 
  14. 75 K$ = "OCT": RETURN 
  15. 80 K$ = "NOV": RETURN 
  16. 85 C(H) = (D -(J(H) *A))/B
  17. 90 K$ = "DEC": RETURN 
  18. 95  PRINT  CHR$(4);"PR#1":DL = 1
  19. 100  FOR A = 1024 TO 1104  STEP 40: FOR I = A TO A +896  STEP 128: FOR X = I TO I +39
  20. 105  POKE 49237,0: GOSUB 135
  21. 110  POKE 49236,0: GOSUB 135
  22. 115  NEXT 
  23. 120  PRINT L$;:L$ = "":DL = DL +1: IF DL >Z  THEN 130
  24. 125  NEXT : NEXT 
  25. 130  PRINT  CHR$(12): PRINT  CHR$(4);"PR#3": RETURN 
  26. 135 L =  PEEK(X):L = L *(L <255) *(L >31): IF   NOT L  THEN L = 32
  27. 140 L$ = L$ + CHR$(L): RETURN 
  28. 145  PRINT  CHR$(15); CHR$(27);
  29. 150  VTAB VP: HTAB SP: FOR Z = SP TO EP: PRINT "S";: NEXT 
  30. 155  PRINT  CHR$(14); CHR$(24);: PRINT "": RETURN 
  31. 160  FOR Z = SP TO EP: VTAB Z: HTAB HP: PRINT "|": NEXT : RETURN 
  32. 165 Y =  -16384:Z =  -16368
  33. 170  IF  PEEK(Y) <128  THEN 170
  34. 175  IF  PEEK(Y) = 155  THEN X = 1: POKE Z,0: RETURN 
  35. 180  IF  PEEK(Y) = 177  THEN X = 2: POKE Z,0: RETURN 
  36. 185  IF  PEEK(Y) = 178  THEN X = 3: POKE Z,0: RETURN 
  37. 190  IF  PEEK(Y) = 179  THEN X = 4: POKE Z,0: RETURN 
  38. 195  IF  PEEK(Y) >127  THEN X = 5: POKE Z,0: RETURN 
  39. 200  CLEAR : HOME : DIM J(40),M(30),N(30),Q(30),C(30): PRINT  CHR$(4);"PR#3": PRINT ""
  40. 205  VTAB 3: HTAB 2: PRINT "FINCALC";: HTAB 71: PRINT "MAIN MENU": FOR W = 4 TO 22  STEP 18:VP = W:SP = 2:EP = 79: GOSUB 145: NEXT 
  41. 210  VTAB 6: HTAB 31: PRINT "Financial Calculator":VP = 7:SP = 31:EP = 50: GOSUB 145
  42. 215  VTAB 8: HTAB 34: PRINT "1. MORTGAGES": VTAB 10: HTAB 34: PRINT "2. INVESTMENTS"
  43. 220  VTAB 12: HTAB 34: PRINT "3. ANNUITIES": VTAB 14: HTAB 34: PRINT "4. TIME FACTORS"
  44. 225  VTAB 16: HTAB 34: PRINT "5. DOCUMENTATION": VTAB 18: HTAB 34: PRINT "6. EXIT"
  45. 230  VTAB 21: HTAB 31: PRINT "ENTER # REQUIRED": GET A$:X =  VAL(A$): IF X <1  OR X >6  THEN 240
  46. 235  ON X GOTO 255,835,945,1045,245,250
  47. 240  VTAB 21: HTAB 26: INVERSE : PRINT "A DIGIT BETWEEN 1&5 PLEASE": NORMAL : GOTO 230
  48. 245  HOME : VTAB 11: HTAB 34: PRINT "LOADING FINDOC": PRINT  CHR$(4);"RUN FINDOC"
  49. 250  HOME : END 
  50. 255  HOME : VTAB 11: HTAB 25: INPUT "MORTGAGE AMOUNT ?    $";D:D =  INT(D):D1 = D: IF D =  <0  THEN  VTAB 11: CALL  -958: GOTO 255
  51. 260  VTAB 13: HTAB 25: INPUT "INTEREST RATE ?      ";G: IF G =  <0  THEN  VTAB 13: CALL  -958: GOTO 260
  52. 265 P = (1 +(G/200)) ^(1/6):T = P -1:T1 = T *1200
  53. 270  VTAB 17: HTAB 25: INVERSE : PRINT "NEED HELP ? ENTER 0 FOR TABLE OF": NORMAL 
  54. 275  VTAB 18: HTAB 25: INVERSE : PRINT "PAYMENTS VS AMORTIZATION PERIOD ": NORMAL 
  55. 280  VTAB 15: HTAB 25: INPUT "AMORTIZATION PERIOD (YRS) ? ";F:F = F *12: IF F < >0  THEN 375
  56. 285  HOME : VTAB 11: HTAB 25: PRINT "PLEASE WAIT-CALCULATING TABLE"
  57. 290 A = (1 -((1 +(G/200))) ^( -10))/T:B = (1 -(T *A))
  58. 295  FOR H = 1 TO 30:P = (1 +T) ^(H *12):J(H) = D *P *T/(P -1)
  59. 300 J(H) =  INT(1000 *J(H)):J(H) =  INT((J(H) +5)/10):J(H) = J(H)/100
  60. 305 C(H) = (D -(J(H) *A))/B
  61. 310 C(H) =  INT(10 *C(H)):C(H) =  INT((C(H) +5)/10): NEXT 
  62. 315  HOME : VTAB 2: HTAB 7: PRINT "MONTHLY PAYMENTS & BALANCE REMAINING AFTER 5 YEAR TERM FOR DIFFERENT"
  63. 320  VTAB 3: HTAB 13: PRINT "AMORTIZATIONS PERIODS - FOR MORTGAGE OF $";D;" @ ";G;"%"
  64. 325  VTAB 4: HTAB 14: PRINT "(EQUIVALENT RATE FOR MONTHLY COMPOUNDING=";T1;"%)"
  65. 330  FOR W = 5 TO 8  STEP 3:VP = W:SP = 1:EP = 79: GOSUB 145: NEXT 
  66. 335  VTAB 6: HTAB 2: PRINT "PERIOD  MONTHLY  5 YEAR   PERIOD  MONTHLY  5 YEAR   PERIOD  MONTHLY  5 YEAR"
  67. 340  VTAB 7: HTAB 2: PRINT "(YRS)   PAYMENT  BALANCE  (YRS)   PAYMENT  BALANCE  (YRS)   PAYMENT  BALANCE"
  68. 345  FOR W = 26 TO 52  STEP 26:HP = W:SP = 6:EP = 18: GOSUB 160: NEXT 
  69. 350 V = 1: FOR HP = 4 TO 56  STEP 26: FOR VP = 9 TO 18: IF V <6  THEN C(V) = 0
  70. 355  VTAB VP: HTAB HP: PRINT V;: HTAB (HP +6): PRINT J(V);: HTAB (HP +15): PRINT C(V):V = V +1: NEXT : NEXT 
  71. 360  VTAB 23: HTAB 41: INVERSE : PRINT "0=MAIN MENU": NORMAL 
  72. 365  VTAB 22: HTAB 27: INPUT "PERIOD REQUIRED ? (1-30)";F$:F = 12 * VAL(F$): IF F = 0  THEN 200
  73. 370  IF F >360  THEN  VTAB 23: CALL  -958: GOTO 360
  74. 375 P = (1 +T) ^F:H = D *P *T/(P -1)
  75. 380 H =  INT(1000 *H):H =  INT((H +5)/10):H = H/100
  76. 385  HOME : VTAB 1: HTAB 13: PRINT "MORTGAGE AMOUNT     $";D
  77. 390  VTAB 2: HTAB 13: PRINT "INTEREST RATE       ";G;"%"
  78. 395  VTAB 3: HTAB 13: PRINT "(EQUIVALENT RATE=";T1;"%)"
  79. 400  VTAB 4: HTAB 13: PRINT "AMORTIZATION PERIOD ";F/12;"YRS"
  80. 405  VTAB 5: HTAB 13: PRINT "MONTHLY PAYMENT     $";H
  81. 410  VTAB 12: HTAB 25: INVERSE : PRINT "(YEAR,MONTH EG:86,2)": NORMAL 
  82. 415  VTAB 11: HTAB 25: INPUT "MORTGAGE START DATE ?";J,K:JB = J:KB = K: GOSUB 25
  83. 420  VTAB 6: HTAB 13: PRINT "ANNIVERSARY DATE    ";K$
  84. 425  IF K < >12  THEN K = K +1: GOTO 435
  85. 430 K = 1:J = J +1
  86. 435  GOSUB 25
  87. 440  VTAB 7: HTAB 13: PRINT "FIRST PAYMENT       ";K$;" ";(J +1900)
  88. 445  VTAB 12: CALL  -958: VTAB 13: HTAB 25: INPUT "MORTGAGE TERM ? (YRS)";JZ
  89. 450  VTAB 8: HTAB 13: PRINT "MORTGAGE TERM       ";JZ;" YRS"
  90. 455 JA = J +JZ:KA = K: IF JA =  >100  THEN JA = JA -100
  91. 460  VTAB 15: HTAB 25: INPUT "ANY PREPAYMENTS ? (Y/N)";A$
  92. 465  IF A$ = "N"  THEN 655
  93. 470  IF A$ = "Y"  THEN 480
  94. 475  VTAB 15: CALL  -958: GOTO 460
  95. 480  VTAB 17: HTAB 25: INPUT "PREPAYMENT CONDITIONS ? (Y/N )";A$
  96. 485  IF A$ = "Y"  THEN VT = 20: GOTO 500
  97. 490  IF A$ = "N"  THEN PA = 0:PB = 100:VT = 15: GOTO 545
  98. 495  VTAB 17: CALL  -958: GOTO 480
  99. 500  VTAB 11: CALL  -958: VTAB 12: HTAB 21: PRINT "(# OF MONTHS INTEREST)"
  100. 505  VTAB 14: HTAB 21: INVERSE : PRINT "ENTER X IF NONE ALLOWED": NORMAL :
  101. 510  VTAB 11: HTAB 21: INPUT "PREPAYMENT PENALTY ?           ";PA$:PA =  VAL(PA$):VP = 9
  102. 515  IF PA$ < >"X"  THEN  VTAB 9: HTAB 13: PRINT "PREPAYMENT PENALTY  ";PA;" MOS INT":VP = 10
  103. 520  VTAB 17: CALL  -958: VTAB 17: HTAB 21: INVERSE : PRINT "ENTER X IF NONE ALLOWED": NORMAL 
  104. 525  VTAB 15: HTAB 21: PRINT "ON ANNIVERSARY DATE ?"
  105. 530  VTAB 14: HTAB 21: INPUT "% REPAYABLE WITHOUT PENALTY    ";PB$:PB =  VAL(PB$)
  106. 535  IF PB$ < >"X"  THEN  VTAB VP: HTAB 13: PRINT PB;"% REPAYABLE ANY ANNIVERSARY": GOTO 545
  107. 540  IF PA$ = "X"  THEN 655
  108. 545  VTAB 11: CALL  -958: VTAB 1: HTAB 50: PRINT "PREPAYMENTS":VT = 13:R = 1
  109. 550  FOR HP = 47 TO 63  STEP 16: FOR VP = 2 TO 13
  110. 555  VTAB (VT +1): HTAB 25: INVERSE : PRINT "ENTER 0 TO END": NORMAL 
  111. 560  VTAB VT: HTAB 25: INPUT "PREPAYMENT AMOUNT ?  $";M(R): IF M(R) = 0  THEN 655
  112. 565  VTAB (VT +1): CALL  -958: VTAB (VT +2): HTAB 25: INPUT "DATE ? (YR,MO)       ";N(R),Q(R)
  113. 570  IF PA$ = "X"  AND Q(R) < >KB  THEN M(R) = 0:N(R) = 0:Q(R) = 0: GOTO 580
  114. 575  GOTO 605
  115. 580  VTAB (VT +3): HTAB 25: INVERSE : PRINT "MUST BE ON ANNIVERSARY DATE": NORMAL 
  116. 585  VTAB (VT +5): HTAB 25: PRINT "RECYCLE ? (Y/N)": GET A$
  117. 590  IF A$ = "Y"  THEN  VTAB VT: CALL  -958: GOTO 555
  118. 595  IF A$ = "N"  THEN 655
  119. 600  GOTO 585
  120. 605 K = Q(R): GOSUB 25
  121. 610  VTAB VP: HTAB HP: PRINT "|  ";K$;" "N(R);" $";M(R)
  122. 615  VTAB VT: CALL  -958:R = R +1: IF VP >10  AND HP = 47  THEN VT = VT +1
  123. 620  IF VP = 2  AND HP = 63  THEN  VTAB 1: HTAB 50: PRINT "        PREPAYMENTS"
  124. 625  NEXT : NEXT 
  125. 630  VTAB VT: CALL  -958: VTAB VT: HTAB 30: INVERSE : PRINT "SORRY-NO MORE ROOM": NORMAL 
  126. 635  VTAB (VT +2): HTAB 30: PRINT "PROCEED WITH TABLES ? (Y/N)": GET A$
  127. 640  IF A$ = "Y"  THEN 655
  128. 645  IF A$ = "N"  THEN 200
  129. 650  GOTO 635
  130. 655 K = KB: IF K < >12  THEN K = K +1: GOTO 665
  131. 660 K = 1:J = J +1
  132. 665  HOME : VTAB 1: HTAB 7: PRINT "MORTGAGE OF $";D;" @ ";G;"% WITH ";F/12;" YRS AMORT'N.PAYMENTS=$";H;"/M"
  133. 670  FOR W = 2 TO 4  STEP 2:VP = W:SP = 1:EP = 78: GOSUB 145: NEXT 
  134. 675 HP = 40:SP = 3:EP = 22: GOSUB 160
  135. 680  VTAB 3: HTAB 1: PRINT "DATE     INT      PRIN      BALANCE";
  136. 685  HTAB 45: PRINT "DATE     INT      PRIN      BALANCE"
  137. 690  FOR HT = 0 TO 44  STEP 44: FOR VT = 5 TO 22: GOSUB 25
  138. 695 V = D1 *T:W = H -V:D1 = D1 -W
  139. 700  FOR Z = 0 TO R: IF M(Z) = 0  THEN 740
  140. 705  IF N(Z) = J  AND Q(Z) = K  THEN 715
  141. 710  GOTO 740
  142. 715  IF Q(Z) = KB  THEN 725
  143. 720 PD = (PA *T *M(Z)):V = V +PD:W = W +M(Z) -PD:D1 = D1 +PD -M(Z): GOTO 740
  144. 725  IF M(Z) >((PB/100) *D)  THEN MA = M(Z) -((PB/100) *D): GOTO 735
  145. 730 MA = 0
  146. 735 PC = (PA *T *MA):V = V +PC:W = W +M(Z) -PC:D1 = D1 +PC -M(Z)
  147. 740  NEXT 
  148. 745 V =  INT(1000 *V):V =  INT((V +5)/10):V = V/100
  149. 750 W =  INT(1000 *W):W =  INT((W +5)/10):W = W/100
  150. 755 D1 =  INT(1000 *D1):D1 =  INT((D1 +5)/10):D1 = D1/100
  151. 760  VTAB (VT): HTAB (HT +1): PRINT K$;" ";J;: HTAB (HT +10): PRINT V;: HTAB (HT +19): PRINT W;: HTAB (HT +29): PRINT D1
  152. 765  IF J = JA  AND K = KB  THEN 815
  153. 770  IF K < >12  THEN K = K +1: GOTO 790
  154. 775 K = 1:J = J +1:VT = VT +1: IF H = 44  AND VT >22  THEN 795
  155. 780  IF H = 0  AND VT >22  THEN H = 44:VT = 5
  156. 785  VTAB (VT): HTAB (HT +1): PRINT "----------------";(J +1900);"----------------"
  157. 790  NEXT : NEXT 
  158. 795  VTAB 23: HTAB 11: PRINT "ESC=MAIN MENU,1=HARD COPY,2=RECYCLE,ANY OTHER KEY TO CONTINUE": GOSUB 165
  159. 800  ON X GOTO 200,805,810,665,665
  160. 805 Z = 22: GOSUB 95: GOTO 665
  161. 810 PA = 0:PB = 0: FOR Z = 0 TO R:M(Z) = 0:N(Z) = 0:Q(Z) = 0: NEXT : GOTO 255
  162. 815  VTAB 23: HTAB 15: PRINT "ESC=MAIN MENU,1=HARD COPY,2=RECYCLE,3=NEW PREPAYMENTS": GOSUB 165
  163. 820  ON X GOTO 200,830,810,825,815
  164. 825  HOME :D1 = D:J = JB:K = KB: GOTO 545
  165. 830 Z = 22: GOSUB 95: GOTO 200
  166. 835  HOME : VTAB 10: HTAB 29: INPUT "DEPOSIT AMOUNT ?      $";D:D1 = D
  167. 840  VTAB 12: HTAB 29: INPUT "INTEREST RATE ?         ";G
  168. 845  VTAB 14: HTAB 29: INPUT "DATE ? (YR,MO-EG 86,2)  ";J,K
  169. 850  IF K < >12  THEN K = K +1: GOTO 860
  170. 855 K = 1:J = J +1:
  171. 860  HOME : VTAB 1: HTAB 19: PRINT "DEPOSIT OF $";D1;" @ ";G;"% COMPOUNDED MONTHLY":HP = 39:SP = 3:EP = 22: GOSUB 160
  172. 865  FOR W = 2 TO 4  STEP 2:VP = W:SP = 10:EP = 69: GOSUB 145: NEXT 
  173. 870  VTAB 3: HTAB 10: PRINT "DATE     INT      PRIN";
  174. 875  HTAB 43: PRINT "DATE     INT      PRIN"
  175. 880  FOR HT = 10 TO 43  STEP 33: FOR VT = 5 TO 22: GOSUB 25
  176. 885 V = G *D/1200:D = D +V
  177. 890 V =  INT(1000 *V):V =  INT((V +5)/10):V = V/100
  178. 895 D =  INT(1000 *D):D =  INT((D +5)/10):D = D/100
  179. 900  VTAB (VT): HTAB (HT): PRINT K$;"  ";J;: HTAB (HT +9): PRINT V;: HTAB (HT +18): PRINT D
  180. 905  IF K < >12  THEN K = K +1: GOTO 925
  181. 910 K = 1:J = J +1:VT = VT +1: IF HT = 43  AND VT >22  THEN 930
  182. 915  IF HT = 10  AND VT >22  THEN HT = 43:VT = 5
  183. 920  VTAB (VT): HTAB (HT +1): PRINT "----------";(J +1900);"----------"
  184. 925  NEXT : NEXT 
  185. 930  VTAB 23: HTAB 10: PRINT "ESC=MAIN MENU,1=HARD COPY,2=RECYCLE,ANY OTHER KEY TO CONTINUE": GOSUB 165
  186. 935  ON X GOTO 200,940,835,860,860
  187. 940 Z = 22: GOSUB 95: GOTO 200
  188. 945  HOME :V = 1: VTAB 10: HTAB 31: INPUT "PRINCIPAL AMOUNT ? $";D
  189. 950  VTAB 12: HTAB 31: INPUT "INTEREST RATE ?     ";G:G = G/100
  190. 955  VTAB 14: HTAB 27: PRINT "ANNUAL OR MONTHLY PAYMENTS ? (A/M)": GET A$
  191. 960  IF A$ = "A"  OR A$ = "M"  THEN 970
  192. 965  GOTO 955
  193. 970  HOME : VTAB 11: HTAB 25:: PRINT "PLEASE WAIT-CALCULATING FACTORS": IF A$ = "M"  THEN 980
  194. 975  FOR H = 1 TO 40:P = (1 +G) ^H:J(H) = D *P *G/(P -1): NEXT : GOTO 985
  195. 980  FOR H = 1 TO 40:P = (1 +(G/12)) ^(H *12):J(H) = D *P *G/(12 *(P -1)): NEXT 
  196. 985  FOR H = 1 TO 40:J(H) =  INT(1000 *J(H)):J(H) =  INT((J(H) +5)/10):J(H) = J(H)/100: NEXT 
  197. 990  HOME : VTAB 4: HTAB 28: PRINT "ANNUITY FROM $";D;" @ ";G *100;"%"
  198. 995  FOR W = 5 TO 7  STEP 2:VP = W:SP = 3:EP = 77: GOSUB 145: NEXT 
  199. 1000  FOR W = 20 TO 60  STEP 20:HP = W:SP = 6:EP = 17: GOSUB 160: NEXT 
  200. 1005  IF A$ = "M"  THEN 1015
  201. 1010  VTAB 6: HTAB 3: PRINT "YRS    $/YEAR    |  YRS    $/YEAR    |  YRS    $/YEAR    |  YRS    $/YEAR": GOTO 1020
  202. 1015  VTAB 6: HTAB 3: PRINT "YRS    $/MONTH   |  YRS    $/MONTH   |  YRS    $/MONTH   |  YRS    $/MONTH"
  203. 1020  FOR HT = 3 TO 63  STEP 20: FOR VT = 8 TO 17
  204. 1025  VTAB VT: HTAB HT: PRINT V;: HTAB (HT +7): PRINT J(V):V = V +1: NEXT : NEXT 
  205. 1030  VTAB 23: HTAB 21: PRINT "ESC=MAIN MENU,1=HARD COPY,2=RECYCLE": GOSUB 165
  206. 1035  ON X GOTO 200,1040,945,1030,1030
  207. 1040 Z = 20: GOSUB 95: GOTO 200
  208. 1045  HOME :V = 1: FOR W = 3 TO 22  STEP 19:VP = W:SP = 2:EP = 79: GOSUB 145: NEXT 
  209. 1050  VTAB 5: HTAB 33: PRINT "TIME FACTORS":VP = 6:SP = 33:EP = 44: GOSUB 145
  210. 1055  VTAB 8: HTAB 25: PRINT "1. FUTURE WORTH OF PRESENT AMOUNT"
  211. 1060  VTAB 10: HTAB 25: PRINT "2. PRESENT WORTH OF FUTURE AMOUNT"
  212. 1065  VTAB 12: HTAB 25: PRINT "3. FUTURE WORTH OF ANNUITY"
  213. 1070  VTAB 14: HTAB 25: PRINT "4. ANNUITY FOR FUTURE AMOUNT"
  214. 1075  VTAB 16: HTAB 25: PRINT "5. PRESENT WORTH OF ANNUITY"
  215. 1080  VTAB 18: HTAB 25: PRINT "6. ANNUITY FROM PRESENT AMOUNT"
  216. 1085  VTAB 21: HTAB 25: PRINT "ENTER FACTOR REQUIRED (1-6)": GET A$:D =  VAL(A$)
  217. 1090  IF D <1  OR D >6  THEN 1085
  218. 1095  HOME : VTAB 11: HTAB 25: INPUT "INTEREST RATE ?     ";G:G = G/100
  219. 1100  VTAB 13: HTAB 25: PRINT "(A)NNUAL OR (M)ONTHLY COMPOUNDING)? (A/M)": GET A$
  220. 1105  IF A$ = "A"  THEN M = 1: GOTO 1120
  221. 1110  IF A$ = "M"  THEN M = 0: GOTO 1120
  222. 1115  GOTO 1100
  223. 1120  HOME : VTAB 12: HTAB 25: PRINT "PLEASE WAIT-CALCULATING FACTORS"
  224. 1125  ON D GOTO 1130,1140,1150,1160,1170,1180
  225. 1130  IF M  THEN 1190
  226. 1135  GOTO 1195
  227. 1140  IF M  THEN 1200
  228. 1145  GOTO 1205
  229. 1150  IF M  THEN 1210
  230. 1155  GOTO 1215
  231. 1160  IF M  THEN 1220
  232. 1165  GOTO 1225
  233. 1170  IF M  THEN 1230
  234. 1175  GOTO 1235
  235. 1180  IF M  THEN 1240
  236. 1185  GOTO 1245
  237. 1190  FOR H = 1 TO 40:P = (1 +G) ^H:J(H) = P: NEXT : GOTO 1250
  238. 1195  FOR H = 1 TO 40:P = (1 +(G/12)) ^(H *12):J(H) = P: NEXT : GOTO 1250
  239. 1200  FOR H = 1 TO 40:P = (1 +G) ^H:J(H) = 1/P: NEXT : GOTO 1250
  240. 1205  FOR H = 1 TO 40:P = (1 +(G/12)) ^(H *12):J(H) = 1/P: GOTO 1250
  241. 1210  FOR H = 1 TO 40:P = (1 +G) ^H:J(H) = (P -1)/G: NEXT : GOTO 1250
  242. 1215  FOR H = 1 TO 40:P = (1 +(G/12)) ^(H *12):J(H) = 12 *(P -1)/G: NEXT : GOTO 1250
  243. 1220  FOR H = 1 TO 40:P = (1 +G) ^H:J(H) = G/(P -1): NEXT : GOTO 1250
  244. 1225  FOR H = 1 TO 40:P = (1 +(G/12)) ^(H *12):J(H) = G/(12 *(P -1)): NEXT : GOTO 1250
  245. 1230  FOR H = 1 TO 40:P = (1 +G) ^H:J(H) = (P -1)/(G *P): NEXT : GOTO 1250
  246. 1235  FOR H = 1 TO 40:P = (1 +(G/12)) ^(H *12):J(H) = 12 *(P -1)/(G *P): NEXT : GOTO 1250
  247. 1240  FOR H = 1 TO 40:P = (1 +G) ^H:J(H) = G *P/(P -1): NEXT : GOTO 1250
  248. 1245  FOR H = 1 TO 40:P = (1 +(G/12)) ^(H *12):J(H) = (G *P)/(12 *(P -1)): NEXT 
  249. 1250  FOR H = 1 TO 40: IF J(H) <1  THEN 1260
  250. 1255 J(H) =  INT(J(H) *10000):J(H) =  INT((J(H) +5)/10):J(H) = J(H)/1000: GOTO 1265
  251. 1260 J(H) =  INT(J(H) *1000000):J(H) =  INT((J(H) +5)/10):J(H) = J(H)/100000
  252. 1265  NEXT : HOME : VTAB 3: HTAB 26: ON D GOTO 1270,1275,1280,1285,1290,1295
  253. 1270  PRINT "FUTURE WORTH OF PRESENT AMOUNT": GOTO 1300
  254. 1275  PRINT "PRESENT WORTH OF FUTURE AMOUNT": GOTO 1300
  255. 1280  PRINT "FUTURE WORTH OF ANNUITY": GOTO 1300
  256. 1285  PRINT "ANNUITY FOR FUTURE AMOUNT": GOTO 1300
  257. 1290  PRINT "PRESENT WORTH OF ANNUITY": GOTO 1300
  258. 1295  PRINT "ANNUITY FROM PRESENT AMOUNT"
  259. 1300  IF   NOT M  THEN 1315
  260. 1305  VTAB 4: HTAB 27: PRINT "ANNUAL COMPOUNDING @";(G *100);"%"
  261. 1310  GOTO 1320
  262. 1315  VTAB 4: HTAB 27: PRINT "MONTHLY COMPOUNDING @";(G *100);"%"
  263. 1320  FOR W = 5 TO 7  STEP 2:VP = W:SP = 3:EP = 77: GOSUB 145: NEXT 
  264. 1325  FOR W = 20 TO 60  STEP 20:HP = W:SP = 7:EP = 17: GOSUB 160: NEXT 
  265. 1330  VTAB 6: HTAB 3: PRINT "YRS    FACTOR    |  YRS    FACTOR    |  YRS    FACTOR    |  YRS    FACTOR"
  266. 1335  FOR HT = 3 TO 63  STEP 20: FOR VT = 8 TO 17: VTAB VT: HTAB HT: PRINT V;: HTAB (HT +7): PRINT J(V):V = V +1: NEXT : NEXT 
  267. 1340  VTAB 23: HTAB 24: PRINT "ESC=MAIN MENU,1=HARD COPY,2=RECYCLE": GOSUB 165
  268. 1345  ON X GOTO 200,1350,1045,1340,1340
  269. 1350 Z = 20: GOSUB 95: GOTO 200